package com.gep.controlador.manager.AcIndiceReparo;

import java.util.Date;
import java.util.List;

import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.zkoss.zk.ui.Executions;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Window;

import com.gep.controlador.util.Mensagem;
import com.gep.dto.EquipamentoDTO;
import com.gep.dto.PecaDTO;
import com.gep.session.EquipamentoBORemota;
import com.gep.session.PecaBORemota;
import com.gep.session.manager.GerencialBORemota;

public class ControladorBuscaAcIndiceReparo extends Window {

	/**
	 * 
	 */
		private static final long serialVersionUID = 1L;

		public EquipamentoBORemota equipamentoBORemota;

		public GerencialBORemota gerencialBORemota;
		
		public PecaBORemota pecaBORemota;

		public ControladorBuscaAcIndiceReparo() {
			try {
				InitialContext ctx;

				ctx = new InitialContext();
				pecaBORemota = (PecaBORemota) ctx
				.lookup("ejb/gep/PecaBORemota/remote");
				this.equipamentoBORemota = (EquipamentoBORemota) ctx
						.lookup("ejb/gep/EquipamentoBORemota/remote");
				this.gerencialBORemota = (GerencialBORemota) ctx
						.lookup("ejb/gep/GerencialBORemota/remote");
			} catch (Exception exp) {
				exp.printStackTrace(System.out);
			}

		}
		
		public void carregarComboPecas(){
			Combobox equipamento = (Combobox) this.getFellow("equipamento");
			
			EquipamentoDTO equipamentoDTO = (EquipamentoDTO)equipamento.getSelectedItem().getValue();
			List<PecaDTO> listaPecasDTO = pecaBORemota.buscarPecasPorEquipamento(equipamentoDTO);
			
			Combobox peca = (Combobox) this.getFellow("peca");
			
			ListModelList model = (ListModelList) peca.getModel();
			if (model == null) {
				model = new ListModelList(listaPecasDTO.size());
				peca.setModel(model);
			}
			model.clear();
			model.addAll(listaPecasDTO);
			
			peca.setVisible(true);
			
		}

		public void buscar() {
			Datebox dateBoxInicio = (Datebox) this.getFellow("dataInicial");
			Datebox dateBoxFinal = (Datebox) this.getFellow("dataFinal");
			Combobox comboPeca = (Combobox) this.getFellow("peca");

			if (dateBoxFinal.getValue() != null && dateBoxInicio != null
					&& comboPeca.getSelectedItem() != null) {
				Date dataInicio = dateBoxInicio.getValue();
				Date dataFinal = dateBoxFinal.getValue();
				PecaDTO pecaDTO = null;
				pecaDTO = (PecaDTO) comboPeca.getSelectedItem()
						.getValue();
				List<Object[]> listaObjetos = gerencialBORemota
						.acompanharIndiceReparo(dataInicio, dataFinal,
								pecaDTO);
				if (listaObjetos.size() != 0 && listaObjetos != null) {
					HttpServletRequest request = (HttpServletRequest) Executions
							.getCurrent().getNativeRequest();
					HttpSession session = request.getSession(false);
					session.setAttribute("dadosAcIndiceReparo", listaObjetos);
					Executions
							.sendRedirect("/zul/gerencial/acompanharIndiceReparo/acIndiceReparo.zul");
				} else {
					Mensagem.BUSCA_NAO_ENCONTRADA();
				}
			} else {
				Mensagem.PREENCHER_CAMPOS();
			}
		}


}
